#include<iostream>
#include<stack>
using namespace std;

const int N = 1e5 + 10;
int n, q;
int a[N], b[N];

int main()
{
    cin >> q;
    while(q--)
    {
       cin >> n;
       for(int i = 1; i <= n; i++) cin >> a[i];
       for(int i = 1; i <= n; i++) cin >> b[i];

       stack<int> st;
       int j = 1; // 标记当前出栈的元素
       for(int i = 1; i <= n; i++)
       {
            //进栈
            st.push(a[i]);
            // 判断是否出栈
            while(j <= n && st.size() && b[j] == st.top())
            {
                st.pop();
                j++;
            }
       }
       if(st.empty()) cout << "Yes" << endl;
       else cout << "No" << endl;
    }
    return 0;
}
